// 引入express模块
// 引入不以路径开头的目录模块
const { query } = require('express');
const express = require('express')
// 引入路由器模块
const userRouter = require('./user.js')
// const querystring = require('querystring');
// 引入body-parser中间件
const bodyParser = require('body-parser')

// 创建web服务器
var app = express()
// 监听端口
app.listen(8080);

// 验证是否为空
// 参数1：要拦截的URL
// 参数2：回调函数, 处理请求
app.use('/reg', (req, res,next) => {
  console.log('验证了是否为空')
  
  if(!req.params) {
    res.send('用户名不能为空')
  }else {
    next()
  }
  
})

// 使用路由器,把用户下的所有路由挂载到/user下
// 挂载：在url的前边添加了 /user
// /user/list    /user/delete
// 参数1：挂载的url
// 参数2：要挂载的路由器
app.use('/user', userRouter)

// 使用路由来接收请求并作出响应
// 一个路由只能处理一个请求
// 请求：请求url,请求的方法
// 请求方法： get 请求url:/login


// 把所有的静态资源（html/css/js/图片等文件）托管到public目录下
// 当浏览器请求静态资源，会自动到public目录下寻找，不需要再创建单独的路由响应文件
app.use(express.static('public'))


// 使用body-parser中间件
// 将post请求的数据解析为对象
app.use(bodyParser.urlencoded({
  extended:false //不使用第三方的qs模块,而是使用核心模块querystring来解析查询字符串为对象
}))

// app.get('/login', (req, res) => {
//   // 回调函数：用于作出响应
//   // req:请求的对象
//   // res:响应的对象
//   // res.send('我响应你的信息！');
//   res.sendFile(__dirname + '/login.html')
// });

app.get('/', (req, res) => {
  res.send(`
  你进入了首页!
  <br>
  欢迎你我的朋友~`);
});

// // 发送文件
// app.get('/study', (req, res) => {
//   // 响应一个文件,必须使用绝对路径
//   res.sendFile(__dirname + '/风景 (1).jpg');
//   console.log(__dirname)
// })

app.get('/index', (req, res) => {
  // 跳转到 百度
  res.redirect('https://www.baidu.com/')
})

app.get('/redirect', (req, res) => {
  res.redirect('/study')
})

app.get('/detail', (req, res) => {
  // 获取请求的方法，url,头信息
  // req:请求的对象
  // console.log(req.method,req.url)
  // console.log(req.headers)
  // 获取查询字符串的数据
  console.log(req.query)
  res.send('这是详情')
})

app.get('/shopping/:price', (req, res) => {
  // 获取路由传递的数据
  console.log(req.params)
  res.send('这是购物车')
})

app.post('/mylogin', (req, res) => {
  // 获取post请求数据
  // 事件：
  // req.on('data', (mydata) => {
  //   // console.log(mydata.toString())
  //   var str = mydata.toString()
  //   var obj = querystring.parse(str)
  //   console.log(obj)
  // })
  // // console.log(req.params)
  // res.send('ok')
  console.log(req.body)
  res.send('登录成功')
})

app.get('/reg',(req,res) => {
  console.log(req.params)
  res.send('注册成功！')
})